package de.risk.domain;

import java.util.ArrayList;
import java.util.HashMap;
import java.io.IOException;

import de.risk.valueobjects.*;

public interface ClientCommunicator {

	public String hauptmenueAusgeben() throws IOException;

	public String rundenmenueAusgeben(Spieler s) throws IOException;

	public void verstaerkenAbfragen(Spieler s) throws IOException, InterruptedException ;

	public int verstaerkenStart(Spieler s) throws IOException;

	public void schreibLaenderListe(Spieler s,
			HashMap<Integer, Land> laenderListe);

	public void gibMissionAus(Spieler s);

	public ArrayList<Integer> verschieben() throws IOException;

	public boolean willKaempfen(Spieler s) throws IOException;

	public boolean willVerschieben(Spieler s) throws IOException;

	public boolean willZufaelligVerstaerken() throws IOException;

	public String gibSpielernameEin() throws IOException;

	// public void spielerErfolgreichAngelegt();

	public void zuWenigeSpieler(int anzahlSpieler);

	public int eingabeKampfEinheit(boolean b, Land angreiferLand)
			throws IOException;

	public ArrayList<Integer> eingabeKampfLaender() throws IOException;

	public void gibWuerfelListenAus(int[] ergebnis, int angreifer,
			int verteidiger);

	public int eingabeEinheitenNachruecken(Land angreiferLand,
			Land verteidigerLand) throws IOException;

	public void fehlermeldungAusgeben(Exception e);

	public void gibKampfVerlusteAus(Spieler s, int verluste);

	public int[] laenderkartenEintauschen(Spieler s) throws IOException;

	public boolean willLaenderkartenEintauschen(Spieler s) throws IOException;

	public void spielendeAusgeben(Spieler gewinner);

	public String speichernNameEingeben() throws IOException;

	public String ladenNameEingeben() throws IOException;

}
